package com.cy.service;

import com.cy.entity.UserCountByLastname;
import com.cy.common.ResultResponse;
import com.cy.entity.Usercourses;
import com.cy.entity.Users;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cy.entity.vo.UserVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Aleven
 * @since 2024-12-21
 */
public interface IUsersService extends IService<Users> {


    /**
     * 查询所有用户
     * @return
     */
     List<Users> findusersAll();

    /**
     * 根据用户ID查询
     * @param UserID
     * @return
     */
     Users findusersById(String UserID);

    /**
     * 新增用户
     * @param user
     * @return
     */
     Integer addUsers(Users user);

    /**
     * 修改用户
     * @param user
     * @return
     */
    Integer updateUsers(Users user);

    /**
     * 删除用户
     * @param UserId
     * @return
     */
    Integer deleteUsers(Integer UserId);

    /**
     *统计用户
     * @return
     */
    Integer countUsers();

    /**
     * 查询相同姓氏的用户并统计其数量
     * @param surname
     * @return
     */
     List<UserCountByLastname> countUsersByLastname(String surname);

    /**
     * 用户登录
     * @param userVo
     * @return
     * @throws Exception
     */
    ResultResponse UserLogin(@RequestBody UserVo userVo) throws Exception;

    /**
     * 用户注册
     * @param users
     * @return
     * @throws Exception
     */
    ResultResponse UserRegister(@RequestBody Users users) throws Exception;

    /**
     * 忘记密码/重新设置密码（根据邮箱 手机号）
     * @param userVo
     * @return
     */
    ResultResponse forgetPwd(@RequestBody UserVo userVo) throws Exception;














}
